package br.com.meuvoto.usuario.entity;

import java.io.Serializable;
import java.util.Calendar;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import br.com.meuvoto.voto.entity.Voto;

@Entity
public class Usuario implements Serializable {

	private static final long serialVersionUID = 7264862611316333666L;

	@Id
	@GeneratedValue
	@Column(unique = true, nullable = false)
	private long id;

	@Column(unique = true, nullable = false, length = 11)
	private String nuCpf;

	@Column(unique = true, nullable = false, length = 6)
	private String senha;

	@Column(nullable = false, length = 70)
	private String nome;

	@Column(nullable = false, length = 10)
	private Calendar dtNasc;

	@Column(nullable = false, length = 10)
	private String sexo;

	@Column(nullable = false, length = 70)
	private String endereco;

	@Column(nullable = false, length = 10)
	private String nuCep;

	@Column(nullable = false, length = 40)
	private String cidade;

	@Column(nullable = false, length = 2)
	private String uf;

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = Voto.class, mappedBy = "usuario")
	private List<Voto> votos;

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getNuCpf() {
		return nuCpf;
	}

	public void setNuCpf(String nuCpf) {
		this.nuCpf = nuCpf;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public Calendar getDtNasc() {
		return dtNasc;
	}

	public void setDtNasc(Calendar dtNasc) {
		this.dtNasc = dtNasc;
	}

	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getNuCep() {
		return nuCep;
	}

	public void setNuCep(String nuCep) {
		this.nuCep = nuCep;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public String getUf() {
		return uf;
	}

	public void setUf(String uf) {
		this.uf = uf;
	}

	public List<Voto> getVotos() {
		return votos;
	}

	public void setVotos(List<Voto> votos) {
		this.votos = votos;
	}

}
